﻿using System;

namespace ConditionStatements
{
    class Program
    {
        static void Main(string[] args)
        {
            TryIfElseStatement();
            TrySwitchCaseOperator();
        }

        static void TryIfElseStatement()
        {
            //Условные операторы

            //Условие задачи: Пользователь вводит часы - от 0 до 24. 
            //Необходимо вывести - какое это время суток

            //Выведем сообщение с подсказкой для пользователя
            //обработаем результат ввода и распарсим его в int
            Console.WriteLine("Введите количество часов (целое число от 0 до 24):");
            int hours = Int32.Parse(Console.ReadLine());

            //Выполним проверку введенных данных
            //Если пользователь ввел число не попадающее в диапазон от 0 до 24 - выведем сообщение об ошибке
            //После этого - проверем к какому времени суток относятся указанные часы
            //и выведем соответствующее сообщение

            if (hours <= 0 || hours > 24)
            {
                Console.WriteLine("Указано неправильное время");
            }
            else if (hours >= 23 || hours < 6)
            {
                Console.WriteLine("Ночь");
            }
            else if (hours >= 6 && hours < 10)
            {
                Console.WriteLine("Утро");
            }
            else if (hours >= 10 && hours < 16)
            {
                Console.WriteLine("День");
            }
            else
            {
                Console.WriteLine("Вечер");
            }

            //Ставить фигурные скобки после if, else if, else - не обязательно, 
            //но только если выражение состоит из одной строки
            //наличие фигурных скобок повышает читабельность кода
        }

        static void TrySwitchCaseOperator()
        {
            //Ввести номер месяца (от 1 до 12)
            //Вывести какой это сезон года
            Console.WriteLine("Введите номер месяца:");
            //Вводим номер месяца в консоле и сохраняем в переменную monthNumber
            int monthNumber = Int32.Parse(Console.ReadLine());

            switch (monthNumber)
            {
                //Пример задания действий в зависимости от значения monthNumber
                case 1:
                {
                    Console.WriteLine("Зима");
                    //Ключевое слово break служит для выхода из условного оператора switch case
                    break;
                }
                case 2:
                {
                   Console.WriteLine("Зима");
                   break;
                }
                case 12:
                {
                    Console.WriteLine("Зима");
                    break;
                }
                //Пример проваливания для того чтоб избежать дублирование кода
                case 3:
                case 4:
                case 5:
                {
                    Console.WriteLine("Весна");
                    break;
                }
                case 6:
                case 7:
                case 8:
                {
                    Console.WriteLine("Лето");
                    break;
                }
                case 9:
                case 10:
                case 11:
                {
                    Console.WriteLine("Осень");
                    break;
                }
                //Оператор default выполняется если введенное значение monthNumber
                //не удовлетворяет ниодному из значений в case
                default:
                {
                    Console.WriteLine("Введено неправильное значение");
                    break;
                }
            }
        }
    }
}
